package top.zlhy7.module.work.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import top.zlhy7.base.request.PageQueryVo;
import top.zlhy7.module.work.entity.WordOrder;
import top.zlhy7.module.work.vo.WordOrderVo;
import top.zlhy7.module.work.vo.WorkOrderFenpaiVo;
import top.zlhy7.module.work.vo.WorkOrderStatistics1Vo;
import top.zlhy7.module.work.vo.WorkOrderStatistics2Vo;
import top.zlhy7.module.work.vo.WorkOrderStatistics3Vo;

import java.util.List;

/**
 * @author renyong
 * @date 2024/9/29 19:35
 * @description 工单 服务
 */
public interface IWordOrderService extends IService<WordOrder> {
    /**
     * 分页查询
     * @param pageQueryVo 查询条件
     * @return
     * @author renyong on 2024/9/29 19:55
     */
    IPage<WordOrderVo> findPage(PageQueryVo<WordOrderVo> pageQueryVo);
    /**
     * 新增
     * @param wordOrderVo
     * @return
     * @author renyong on 2024/9/29 21:43
     */
    void insert(WordOrderVo wordOrderVo);
    /**
     * 修改
     * @param wordOrderVo
     * @return
     * @author renyong on 2024/9/29 21:43
     */
    void update(WordOrderVo wordOrderVo);
    /**
     * 删除
     * @param id 主键
     * @return
     * @author renyong on 2024/9/29 21:59
     */
    void delete(Long id);
    /**
     * 分派
     * @param workOrderFenpaiVo 分派vo
     * @return
     * @author renyong on 2024/9/29 22:30
     */
    void fenpai(WorkOrderFenpaiVo workOrderFenpaiVo);
    /**
     * 工单统计1-查询7月每天的工单总量、超期率，超期率=超期工单总量/工单总量
     * @param queryVo 查询条件
     * @return
     */
    List<WorkOrderStatistics1Vo> statistics1(WorkOrderStatistics1Vo queryVo);
    /**
     * 工单统计2：查询7月每个部门的工单总量、超期率。
     * @param queryVo 查询条件
     * @return
     */
    List<WorkOrderStatistics2Vo> statistics2(WorkOrderStatistics2Vo queryVo);
    /**
     * 工单统计3：查询7月每个工单类型的工单总量、超期率。
     * @param queryVo 查询条件
     * @return
     */
    List<WorkOrderStatistics3Vo> statistics3(WorkOrderStatistics3Vo queryVo);
}
